Public Member Functions | |
| __construct () | |
| showForm ($editID) | |
| resolveForm ($data) | |
Private Member Functions | |
| printSubFolder ($fileID, $sql_add, &$folderArr, $COUNT=0, $layer="··", $selectedFile="", $fileSelf="") | |
Private Attributes | |
| $role = null | |
| $team = null | |
Definition at line 47 of file class.edit.inc.php.
| Edit::__construct | ( | ) |
| Edit::printSubFolder | ( | $ | fileID, | |
| $ | sql_add, | |||
| &$ | folderArr, | |||
| $ | COUNT = 0, |
|||
| $ | layer = "··", |
|||
| $ | selectedFile = "", |
|||
| $ | fileSelf = "" | |||
| ) | [private] |
Erstellt eine Baumstrukur aller Ordner, auf die der User Schreibrechte hat und die er sehen darf private
| ezsql | [$fileID] - | |
| string | [$sql_add] - SQL zusatz, ist Usergruppenabhaenigig | |
| array | [$folderArr] - Array der Ermittelten Folder, ist ein Zeiger der Uebergeben wird | |
| int | [$COUNT] - Ist der Array Zaehler von folderArr | |
| string | [$layer] - Sind die zeichen vorm Ordnernamen fuer visualisierung der baumstrukur |
AAnnssoten gaanz Normal
Definition at line 219 of file class.edit.inc.php.
References $_SESSION, and $db.
Referenced by showForm().
00219 { 00220 global $db; 00221 $folders = $db->get_results("SELECT fileID, link, student_write, userID FROM filelist WHERE parent_object='".$fileID."' AND courseID=".$_SESSION['course']." AND type='folder' $sql_add ORDER BY name"); 00222 if ($selectedFile > 0 && $COUNT == 0 && ($_SESSION["usergroup"] == ADMIN || ($_SESSION["usergroup"] == DOZENT && $_SESSION["course"] > 0) || isset($_SESSION["assistent"]))) { 00223 $folderArr[$COUNT++] = array("Zum Hauptordner machen", 0); 00224 } 00225 if ($folders) foreach($folders as $folder) { 00226 if ($fileSelf == $folder->fileID) { // Wenn Ordner, wird er selbst nicht angezeigt und kein Unterordner 00227 continue; 00228 } elseif ($selectedFile == $folder->fileID) { // Der jetzige Ueberordner wird besonders ddeklarrriet 00229 $folderArr[$COUNT][0] = $layer." • ".Data::toHTML($folder->link, false); //.".......................*** HOME ***"; 00230 $folderArr[$COUNT++][1] = $folder->fileID; 00231 } else { 00232 $folderArr[$COUNT][0] = $layer." • ".Data::toHTML($folder->link, false); 00233 $folderArr[$COUNT++][1] = $folder->fileID; 00234 } 00235 $COUNT = $this->printSubFolder($folder->fileID, $sql_add, $folderArr, $COUNT, $layer."··", $selectedFile, $fileSelf); 00236 } 00237 return $COUNT; 00238 }
| Edit::resolveForm | ( | $ | data | ) |
Wertet das Formular aus und traegt die Daten in die Datenbank ein public
| array | $data - Array mit dem Formulareintraegen |
Definition at line 245 of file class.edit.inc.php.
References $_SESSION, and $db.
00245 { 00246 global $db, $EZSQL_ERROR; 00247 echo "<table>"; 00248 /************************************ FEHLERUEBERPRUEFUNG BEGIN***********************************************/ 00249 if ($data['link'] == "" && $data['type'] != "file") { 00250 switch ($data['type']) { 00251 case 'ROOT': 00252 case 'folder': 00253 $ERROR = "Sie haben keinen Ordnernamen angegeben!"; 00254 break; 00255 00256 case 'link': 00257 $ERROR = "Sie haben keinen Link angegeben!"; 00258 break; 00259 } 00260 Output::errorMessage($ERROR, 2); 00261 } 00262 if ($data['name'] == "") { 00263 switch ($data['type']) { 00264 case 'ROOT': 00265 case 'folder': 00266 $ERROR = "Sie haben keinen erläuternden Ordnernamen (Tooltip) angegeben!"; 00267 break; 00268 00269 case 'link': 00270 $ERROR = "Sie haben keinen Namen für den Link angegeben!"; 00271 break; 00272 00273 case 'file': 00274 $ERROR = "Sie haben keinen Namen für die Datei angegeben!"; 00275 break; 00276 } 00277 Output::errorMessage($ERROR, 2); 00278 } 00279 if ($data['parent_object'] == "" && $data['type'] != 'ROOT') { 00280 $ERROR = "Sie haben keinen Zielordner ausgewählt!"; 00281 Output::errorMessage($ERROR, 2); 00282 } 00283 if ($data['type'] == 'link') { 00284 if (!Utilities::validateURL($data['link'])) { 00285 $ERROR = "Sie haben eine ungültige URL angegeben!"; 00286 Output::errorMessage($ERROR, 2); 00287 } 00288 if (strlen($data['name']) > 40) { 00289 $ERROR = "Linkname darf höchstens 40 Zeichen lang sein."; 00290 Output::errorMessage($ERROR, 1); 00291 } 00292 } 00293 if ($data['type'] == 'folder') { 00294 if (strlen($data['link']) > 20) { 00295 $ERROR = "Ordnername darf höchstens 20 Zeichen lang sein."; 00296 Output::errorMessage($ERROR, 1); 00297 } 00298 } 00299 // Wenn bis hierher schon ein Fehler festgestellt wurde bricht er ab 00300 if (isset($ERROR)) { 00301 echo "</table>"; 00302 return false; 00303 } 00304 /************************************ FEHLERUEBERPRUEFUNG ENDE ***********************************************/ 00305 switch ($data['type']) { 00306 case 'ROOT': // Hauptordner anlegen 00307 $data['type'] = 'folder'; 00308 $type = "von Hauptordner"; 00309 break; 00310 00311 case 'folder': // Unterordner anlegen 00312 $type = "von Ordner"; 00313 break; 00314 00315 case 'link': 00316 $type = "von Link"; 00317 break; 00318 00319 case 'file': 00320 $type = "von Datei"; 00321 break; 00322 } 00323 // Baut die SQL Abfrage anhand des Arrays data auf. 00324 // Alle Felder ohne "tmp" werden als FeldName benutzt und ihr Wert in die DB eingetragen 00325 $SQLdata = ""; 00326 foreach($data as $key => $value) { 00327 if (!strstr($key, "tmp")) { 00328 $SQLdata.= $key."='".Data::toMysql($value) ."',"; 00329 } 00330 } 00331 $SQL = "UPDATE filelist SET ".substr($SQLdata, 0, -1) ." WHERE fileID='".$data['fileID']."' "; // SQL Abfrage ohne Endene Kommas 00332 $errorCount = count($EZSQL_ERROR); 00333 $db->query($SQL); 00334 if (count($EZSQL_ERROR) > $errorCount || $data['fileID'] < 0) { 00335 Output::errorMessage("Fehler beim Anlegen ".$type." in der Datenbank!"); 00336 echo "</table>"; 00337 return false; 00338 } 00339 if (isset($this->role)) { 00340 RoleArtefacts::setRoleForItem(RESSOURCE, (int)$data["fileID"], $_SESSION["roleID"]); 00341 } else { 00342 RoleArtefacts::deleteItem(RESSOURCE, (int)$data["fileID"]); 00343 } 00344 if (isset($this->team)) { 00345 TeamArtefacts::setTeamForItem(RESSOURCE, (int)$data["fileID"], $_SESSION["teamID"]); 00346 } else { 00347 TeamArtefacts::deleteItem(RESSOURCE, (int)$data["fileID"]); 00348 } 00349 // Spezielle UserSichtbarkeit 00350 // Erst alle Loeschen 00351 $db->query("DELETE FROM filevisible WHERE fileID='".$data['fileID']."'"); 00352 if ($data['fileID'] && $data['visible_type'] != 1 && isset($data['tmpfileVisibleList'])) { 00353 // Dann eintraege machen 00354 $errorCount = count($EZSQL_ERROR); 00355 foreach($data['tmpfileVisibleList'] as $value) { 00356 $db->query("INSERT INTO filevisible (fileID,userID) VALUES(".$data['fileID'].",".$value.")"); 00357 } 00358 if (count($EZSQL_ERROR) > $errorCount) { 00359 Output::errorMessage("Aktion nicht erfolgreich durchgeführt!", 1); 00360 echo "</table>"; 00361 return false; 00362 } 00363 } 00364 Output::echoMessage("Aktion wurde erfolgreich durchgeführt !", 1); 00365 echo "</table>"; 00366 return true; 00367 }
| Edit::showForm | ( | $ | editID | ) |
Generiert Formular zum Editieren von Eigenschaften public
Definition at line 77 of file class.edit.inc.php.
References $_SESSION, $db, and printSubFolder().
00077 { 00078 global $db, $EZSQL_ERROR; 00079 // Initialisierung 00080 $time = time(); 00081 $sql_add = ""; 00082 $heute = getdate(); 00083 $course = $_SESSION['course']; 00084 $form = new Formular(); 00085 // INITIALISIERUNG von Kalender Anzeige 00086 // DateSelection Objekt erzeugen und das heutige (start-) Datum einstellen 00087 $calendar = new DateSelection($heute['mday'], $heute['mon'], $heute['year'], $heute['hours'], $heute['minutes']); 00088 //Javascript deaktivieren 00089 $calendar->autoUpdate = false; 00090 //Name des Formulars einstellen 00091 $calendar->formName = "insert"; 00092 //Die Ausgabestrings löschen (keine Bezeichner vor den Auswahlfeldern) 00093 $calendar->clearStrings(); 00094 // Hohlen des zu Editierenden Eintrags 00095 $query = "SELECT fileID, courseID, name, link, parent_object, description, userID, type, visible_type, start_time, end_time, student_write, parent_object FROM filelist WHERE fileID='".$editID."'"; 00096 $editFile = $db->get_row($query); 00097 if (is_null($editFile)) return false; 00098 // Wenn versuch Foyer Ordner im Kurs zu editieren -> Geht nicht 00099 if ($_SESSION['course'] != 0 && $editFile->courseID == 0) { 00100 echo "<table width='100%' class='center'>"; 00101 Output::errorMessage("Sie können keine Foyer-Ressourcen im Kurs bearbeiten. Bitte gehen Sie hierzu ins Foyer!"); 00102 echo "</table>"; 00103 return false; 00104 } 00105 // Wenn nicht Admin oder Besitzer -> VERBOT 00106 if (($_SESSION['usergroup'] == STUDENT || $_SESSION['usergroup'] == ALUMNUS || $_SESSION['usergroup'] == SCHUELER || $_SESSION['usergroup'] == GAST) 00107 && $editFile->userID != $_SESSION['userid']) { 00108 echo "<table width='100%' class='center'>"; 00109 Output::errorMessage("Sie sind nicht berechtigt, diese Datei zu editieren.<br/>Nur Admins (Dozent/Tutor) oder der Besitzer der Datei darf das!"); 00110 echo "</table>"; 00111 return false; 00112 } 00113 // BEGIN von Formular erstellen 00114 // Init 00115 $form->setFormHead("edit"); //Name des Formulars 00116 $form->setTemplate("<table>", "<tr><td class='tableCell'>", "<td class='tableCell'>"); // Setzt die UmgebungsTags 00117 $form->setButtons(1, "Abschicken"); //Setzt die Buttons 00118 $form->addInput("hidden", "fileID", "", 30, $editID); 00119 $TYPE = $editFile->type; 00120 if ($editFile->parent_object == 0) $TYPE = "ROOT"; 00121 $form->addInput("hidden", "type", "", 30, $TYPE); 00122 if (isset($this->role)) { 00123 $form->addRawCode("<tr><td class='message' colspan='2'>Sie nehmen zur Zeit die Rolle <strong>".Data::toHTML($this->role->getName($_SESSION["gender"]), false) ."</strong> ein.<br />Wenn Sie ein Element bearbeiten, wird dieses unter Ihrem Rollennamen veröffentlicht.</td></tr>"); 00124 } 00125 // TrennZeile 00126 $form->addRawCode("<tr><td class='tableHead' colspan='2'>Benötigte Einstellungen</td></tr>"); // Fuegt eine Ueberschriftszeile ein 00127 if (($_SESSION['usergroup'] != STUDENT && $_SESSION['usergroup'] != ALUMNUS && $_SESSION['usergroup'] != SCHUELER && $_SESSION['usergroup'] != GAST) 00128 && $editFile->type == "folder") $form->addInput("checkbox", "student_write", "Schreibberechtigung für Studenten", 30, 1, $editFile->student_write); 00129 $form->addInput("text", "name", "<strong>Link:</strong> Bitte geben Sie einen Namen für den Link an.<br/><strong>Ordner: </strong>Bitte geben Sie einen erläuternden Namen (Tooltip) für den Ordner an.<br/><span class='text10'>(max. 40 Zeichen)></span>", 41, $editFile->name, 40); 00130 if ($editFile->type != "file") $form->addInput("text", "userfile", "<strong>Link:</strong> Bitte geben Sie eine URL ein.<br/><strong>Ordner: </strong>Bitte geben Sie einen Ordnernamen ein.<br/><span class='text10'>(OrdnerName=>max. 20 Zeichen)</span>", 41, $editFile->link); 00131 else $form->addInput("hidden", "userfile", "", 41, $editFile->link); 00132 // SQL Abfragen fuer Unterschiedliche UserGruppen => admin und Dozenten duerfen alle Dateien und Verz. sehen 00133 if ($_SESSION['usergroup'] == STUDENT || $_SESSION['usergroup'] == ALUMNUS || $_SESSION['usergroup'] == SCHUELER || $_SESSION['usergroup'] == GAST) 00134 $sql_add = "AND (userID='".$_SESSION['userid']."' OR (visible_type='1' AND start_time<'$time' AND end_time>'$time' AND student_write=1) )"; 00135 else if ($_SESSION['usergroup'] == SEKRETARIAT) // Tutor 00136 $sql_add = "AND (userID='".$_SESSION['userid']."' OR visible_type<=2)"; 00137 // Zeichnet die OrdnerLIste in Baumstruktur 00138 $folderArr = NULL; 00139 $this->printSubFolder(0, $sql_add, $folderArr, 0, "", $editFile->parent_object, $editID); 00140 $form->addSelect("folder", "Bitte geben Sie den Zielordner an<br/><span class='text10'><em> (ist ohne Bedeutung, wenn Sie einen Hauptordner anlegen.)</em></span>", $folderArr, 10, false, $editFile->parent_object); 00141 $form->addTextArea("comment", "Datei-Beschreibung (optional)<br/><span class='text10'><em> (max. 255 Zeichen)</em></span>", 40, 3, $editFile->description); 00142 $visibleArr = array(array("Alle", "1"), array("Dozenten und Tutoren", "2"), array("Dozenten", "3")); 00143 $form->addSelect("visible", "Wählen Sie hier die Benutzergruppe aus, die Ihren Eintrag sehen darf:", $visibleArr, 1, false, $editFile->visible_type); 00144 $form->addButtons(); 00145 // Tutoren und Dozenten duerfen einzelberrechtigungen setzen (User, Zeit) 00146 if (($_SESSION['usergroup'] != STUDENT && $_SESSION['usergroup'] != ALUMNUS && $_SESSION['usergroup'] != SCHUELER && $_SESSION['usergroup'] != GAST) || isset($_SESSION["assistent"]) 00147 || (($_SESSION['usergroup'] == STUDENT || $_SESSION['usergroup'] == ALUMNUS) && $course > 0)) { 00148 // Ueberschriftszeile 00149 $form->addRawCode("<tr><td class='tableHead' colspan='2'>Optionale Einstellungen</td></tr>"); 00150 // Wenn im Foyer dann Alle Anzeigen 00151 if ($course == 0) $names = $db->get_results("SELECT ID, Vorname, Nachname FROM user WHERE Usergroup > 1 AND Invisible = 0 AND ID <> ".$_SESSION["userid"]." ORDER BY Nachname, Vorname"); 00152 else $names = $db->get_results("SELECT ID, Vorname, Nachname, user_course.courseID FROM user, user_course WHERE user.ID=user_course.userID AND user_course.courseID='$course' AND Usergroup > 1 AND userID <> ".$_SESSION["userid"]." ORDER BY Nachname, Vorname"); 00153 // Erstellt UserListe fuer Spezielle Sichtbarkeit 00154 $COUNT = 0; 00155 if (is_array($names)) { 00156 $visibleUsers = $db->get_col("SELECT userID FROM filevisible WHERE fileID='".$editID."'"); 00157 foreach($names as $name) { 00158 $visibleListArr[$COUNT][0] = Data::toHTML($name->Nachname.", ".$name->Vorname, false); 00159 $visibleListArr[$COUNT++][1] = $name->ID; 00160 } 00161 } 00162 if (is_array($visibleListArr)) $form->addSelect("visibleList", "Hier können Sie zusätzliche Personen auswählen, die Ihren Eintrag sehen dürfen:<br/>(Für Mehrfachselektierung STRG-Taste beim Klicken gedrückt halten.)<br/>(wird ignoriert, wenn als Benutzergruppe "Alle" ausgewählt ist!)", $visibleListArr, 10, true, $visibleUsers); 00163 } 00164 if (($_SESSION['usergroup'] != STUDENT && $_SESSION['usergroup'] != ALUMNUS && $_SESSION['usergroup'] != SCHUELER && $_SESSION['usergroup'] != GAST) || isset($_SESSION["assistent"])) { 00165 $form->addMarker(); 00166 $form->addButtons(); 00167 echo $form->getForm(0); 00168 // ************* kalender plugin ************************************** 00169 00170 ?> 00171 <tr> 00172 <td class='tableCell'>Für welche Zeit sichtbar?<br/><span class='text10'><em>(wenn Sie nichts auswählen ist der Eintrag immer sichtbar)</em></span></td> 00173 <td class='tableCell'>Anzeigebeginn Datum/Zeit:<br/> 00174 <?php 00175 if ($editFile->start_time > 0) { 00176 $Date = getdate($editFile->start_time); 00177 $calendar->setDate($Date['mday'], $Date['mon'], $Date['year']); 00178 $calendar->setTime($Date['hours'], $Date['minutes']); 00179 } 00180 if (isset($_POST['okButton'])) { 00181 //falls $_POST - Variablen vorhanden sind, auf das entsprechende Datum einstellen 00182 $calendar->setDate($_POST['openDate_day'], $_POST['openDate_month'], $_POST['openDate_year']); 00183 $calendar->setTime($_POST['openDate_hour'], $_POST['openDate_minute']); 00184 } 00185 //die Datums Auswahlfelder ausgeben 00186 $calendar->printCalender("openDate", "dateExt"); 00187 $calendar->printCalender("openDate", "time"); 00188 echo "<br/><br/>Anzeigeende Datum/Zeit:<br/>"; 00189 if ($editFile->end_time < 2147483647) { 00190 $Date = getdate($editFile->end_time); 00191 $calendar->setDate($Date['mday'], $Date['mon'], $Date['year']); 00192 $calendar->setTime($Date['hours'], $Date['minutes']); 00193 } 00194 if (isset($_POST['okButton'])) { 00195 //falls $_POST - Variablen vorhanden sind, auf das entsprechende Datum einstellen 00196 $calendar->setDate($_POST['closeDate_day'], $_POST['closeDate_month'], $_POST['closeDate_year']); 00197 $calendar->setTime($_POST['closeDate_hour'], $_POST['closeDate_minute']); 00198 } 00199 $calendar->printCalender("closeDate", "dateExt"); 00200 $calendar->printCalender("closeDate", "time"); 00201 echo " </td>\n</tr>\n"; 00202 // ************* kalender plugin ************************************** 00203 echo $form->getForm(1); 00204 } else { 00205 echo $form->getForm(); 00206 } 00207 }
Edit::$role = null [private] |
Definition at line 53 of file class.edit.inc.php.
Edit::$team = null [private] |
Definition at line 59 of file class.edit.inc.php.
1.6.1